home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
DTP
/
DTP_TEX
/
H220.ZIP
/
ITRNS211.ZIP
/
LIB
/
TAMILMAX.MF
< prev
next >
Wrap
Text File
|
1991-08-16
|
18KB
|
447 lines
def tspecs =
if callchar = "k":
% cmchar "Tamil k";
charspec("k",1.5x_height#,x_height#,0);
top y2r=top y3r=top y4r=h;
bot y7=bot y11=0;
y1=y9=y5=.6x_height;
y8=.5y1; y10=.5y1;
y6=.3x_height;
y22=h;
x10=w-u; x8=w-x10;
x3=x5=.6[x8,x10];
x1=x2-.5hair=x22=.2[x8,x10]; x7=.25[x8,x10];
x6=x5;
x4=.9[x8,x10]; x11=.75[x8,x10]; x9=.65[x8,x10];
z21=z1; x101=x10+.6u; y101=y10;
%pickup crisp.nib;
pos1(tthinner,30); pos22(tthinner,30); pos2(.8tmed,90); pos4(.8tmed,90);
pos3(tthick,0); pos5(tthick,0); pos6(tthick,-10);
pos7(tthin,-60); pos8(tthinner,-180);pos21(tmed,-210);
pos9(tmed,-210); pos10(tthick,-340); pos11(tthin,-450);
pos101(tthickest,-340);
% show z1,z1r,z1l,z22,z22r,z22l;
filldraw stroke z1e--z22e;
filldraw stroke z2e--z4e;
x65=x11-.075w; y65=y11+.075h; pos65(tthinnest,-540);
filldraw stroke z3e...z5e...z6e{down}...{left}z7e...{up}z8e...{right}z21e
...z9e{right}...z10e{down}...{left}z11e...z65e;
penlabels(1,2,3,4,5,6,7,8,9,10,11,21);
% endchar;
elseif callchar = "c":
charspec("c",1.5x_height#,x_height#,0);
top y2r=top y3r=top y4r=h;
bot y7=bot y11=0;
y1=y9=y5=.6x_height;
y8=.5y1; y10=.5y1;
y6=.3x_height;
y22=h;
x10=w-u; x8=w-x10;
x3=x5=.6[x8,x10];
x1=x2-.5hair=x22=.2[x8,x10]; x7=.25[x8,x10];
x6=x5;
x4=.9[x8,x10]; x11=.75[x8,x10]; x9=.65[x8,x10];
z21=z1; x101=x10+.6u; y101=y10;
%pickup crisp.nib;
pos1(tthinner,30); pos22(tthinner,30); pos2(.8tmed,90); pos4(.8tmed,90);
pos3(tthick,0); pos5(tthick,0); pos6(tthick,-10);
pos7(tthin,-60); pos8(tthinner,-180);pos21(tmed,-210);
pos9(tmed,-210); pos10(tthick,-340); pos11(tthin,-450);
pos101(tthickest,-340);
% show z1,z1r,z1l,z22,z22r,z22l;
filldraw stroke z1e--z22e;
filldraw stroke z2e--z4e;
x25=x25r=x25l=x5; y25=y21; y25r=y21r; y25l=y21l;
filldraw stroke z3e...z5e...z6e{down}...{left}z7e...{up}z8e...{right}z21e---z25e;
penlabels(1,2,3,4,5,6,7,8,21,25);
% endchar;
elseif callchar = "1":
%cmchar "Tamil n dot";
charspec("1",3x_height#,x_height#,0);
%adjust_fit(0,0);
x1=x81=u; x6=.6x10; x8=.6[x1,x6]; x7=.5[x8,x6];
x5=.5[x1,x6]; x3=.5[x1,x8]; x4=x2=.5[x1,x3];
x9=.5[x8,x10]; x10=.7w; x12=.6[x8,x10]; x11=.5[x12,x10];
x13=rt x10r; x14=w-u; x15=x16=.5[x13,x14];
top y5r=top y9r=top y13r=y16=top y14r=h;
bot y4r=bot y7r=bot y11r=y15=0;
y2=y8=y6=y12=y10=.5h;
y81=y1=y3=.5y2;
pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
pos81(tthinner,-180); pos5(tmed,-270); pos6(tthicker,-360);
pos7(tmed,-450); pos8(tthin,-540); pos9(tmed,-630); pos10(tthicker,-720);
pos11(tmed,-810); pos12(tthin,-900); pos13(tthin,-990);
pos14(tthin,-990); pos15(tthicker,0); pos16(tthicker,0);
if dodraw:
filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
...{down}z6e...{left}z7e...{up}z8e...{right}z9e...{down}z10e
...{left}z11e...{up}z12e...{right}z13e; %---z14e;
fi
%filldraw stroke z15e---z16e;
penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
elseif callchar = "p":
charspec("p",1.4x_height#,x_height#,0);
y1=y6=h; y2=y5=bot y3l=bot y4l=0;
lft x1l=lft x2l=x3=u;
rt x5r=rt x6r=x4=w-u;
pos1(tthick,0); pos2(tthick,0); pos3(tthin,90); pos4(tthin,90);
pos5(tthick,0); pos6(tthick,0);
filldraw stroke z1e---z2e;
filldraw stroke z3e---z4e;
filldraw stroke z5e---z6e;
penlabels(1,2,4,6);
elseif callchar = "n":
charspec("n",1.5x_height#,x_height#,.5x_height#);
x12=u; x11=x1=x2=x3=3u; x4=rt x9r=w-u;
x7=x5=x6=.4[x1,x9]; x8=.6[x7,x9]; x13=.6[x12,x11]; x10=.5[x7,x8];
y1=y6=y7=0; top y3r=top y4r=y2=y5=h;
y8=.55h; y9=.5y8; bot y13l=-d; y10=y11=-.3d; y12=.4[y10,y13];
pos1(tthinner,0); pos2(tthinner,0); pos3(tmed,90); pos4(tmed,90);
pos5(tthick,0); pos6(tthick,0); pos7(tthin,180); pos8(tthin,90);
pos9(tthick,0); pos10(tthin,-90); pos11(tthin,-90); pos12(tthinner,0);
pos13(tthick,45);
filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; filldraw stroke z5e--z6e;
%filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
penlabels(1,2,4,5,6,8,9,10,11,12,13);
%endchar;
elseif callchar = "r":
charspec("?",1.125x_height#+2u#,x_height#,0);
lft x1l=lft x2l=x3=u; x4=w-u; x5=x6=.6w;
y1=y6=0; y2=y3=y4=y5=h;
pos1(tthinnest,0); pos2(tthinnest,0); pos3(tthin,90); pos4(tthin,90);
pos5(tthick,0); pos6(tthick,0);
filldraw stroke z1e---z2e; filldraw stroke z3e---z4e; filldraw stroke z5e---z6e;
penlabels(1,2,3,4,5,6);
elseif callchar = "r2":
charspec("?",.9x_height#+2u#,x_height#,0);
lft x1l=lft x2l=x3=u; x4=w-u; x5=x6=.6w;
y1=y6=0; y2=y3=y4=y5=h;
pos1(tthinnest,0); pos2(tthinnest,0); pos3(tthin,90); pos4(tthin,90);
pos5(tthick,0); pos6(tthick,0);
filldraw stroke z1e---z2e; filldraw stroke z3e---z4e; filldraw stroke z5e---z6e;
penlabels(1,2,3,4,5,6);
elseif callchar="y":
charspec("y",1.5x_height#,x_height#,0);
x1=x2=u; x8=x9=x10=w-u; x7=x4=x5=x6=.35[x1,x9]; x3=.35[x1,x5];
y9=y5=y1=h; y2=.3h; y4=.5h; bot y7l=bot y8l=bot y3l=y6=y10=0;
pos1(.8tmed,0); pos2(.8tmed,0); pos3(tthin,90); pos4(tthinner,180);
pos5(tthick,0); pos6(tthick,0); pos7(tthin,90); pos8(tthin,90);
pos9(tthick,0); pos10(tthick,0);
filldraw stroke z1e--z2e{down}...{right}z3e...{up}z4e;
filldraw stroke z5e--z6e; filldraw stroke z7e--z8e; filldraw stroke z9e--z10e;
penlabels(1,2,3,4,5,6,7,8,9,10);
%endchar;
elseif callchar="a":
charspec("a",2x_height#,x_height#,desc_depth#);
%adjust_fit(0,0);
x3=.5[x9,x11]; y1=.8h; y5=y12=h; y2=y4=y6=.6h; y3=.2h; x1=.45[x9,x11];
x4=x8=.4[x9,x11]; x2=.6[x9,x11]; x5=.6[x9,x11]; x6=.7[x9,x11]; x7=.8[x9,x11]; x11=x12=x13=w-u;
x9=u; x10=.15[x9,x11]; y8=y13=-d; y7=y3; y9=-.1d; y10=y11=0;
z20=z1;
pos1(hair,70); pos2(.8curve,0); pos3(hair,-90); pos4(hair,190);
pos5(hair,90); pos6(curve,0); pos7(tthickest,-20); pos8(tmed,-90);
pos9(hair,-180); pos10(hair,90); pos11(hair,90); pos12(.8curve,20);
pos13(.8curve,20);pos20(hair,135);
filldraw stroke z1e...z2e...z3e...z4e...z20e...z5e...{down}z7e...{left}z8e...{up}z9e...z10e---z11e;
filldraw stroke z12e---z13e;
penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
elseif callchar="v":
charspec("v",1.5x_height#,x_height#,0);
x1=x81=u; x6=.6[x1,x9]; x8=x9=x10=w-u; x7=.4[x5,x6];
x5=.5[x1,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
y2=.5h; y1=y3=y81=.5y2; bot y4r=bot y7r=bot y8r=0;
top y5r=y10=h; y9=0; y6=.5h;
pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tthick,-450);
pos8(tthick,-450); pos9(tthick,0); pos10(tthick,0);
filldraw stroke z1e..z2e..z3e..z4e..z81e..z5e...{down}z6e...{left}z7e;
filldraw stroke z7e--z8e; filldraw stroke z9e--z10e;
penlabels(1,2,3,4,5,6,7,8,9,10);
elseif callchar="l":
charspec("l",1.5x_height#,x_height#,0);
x81=u; x9=w-u; x6=x7=.55[x81,x9]; x8=x10=.5[x6,x9]; x1=.1[x81,x6];
x5=.5[x81,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
y81=y2=.5h; y1=y3=.5y2; bot y4r=bot y8l=0;
top y5r=h; top y10l=h; y9=.5h; y6=.6h; y7=.4h;
pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0); pos4(tthin,-90);
pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tthick,-360);
pos8(tmed,-270); pos9(tthin,-180); pos10(tmed,-120);
%filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e..z10e;
penlabels(1,2,3,4,5,6,7,8,9,10);
elseif callchar="m":
charspec("m",1.6x_height#,x_height#,0);
lft x1l=lft x2l=x3=u;
rt x5r=w-u; x8=x7=.5w;
x6=.3[x8,x5]; x4=.8[x8,x5];
y1=top y6r=h;
y2=bot y3r=bot y4r=y8=0;
y5=.5h; y7=.8h;
pos1(tthick,0); pos2(tthick,0);
pos3(tthin,-90); pos4(tthin,-90);
pos5(tthinner,0); pos6(tmed,90);
pos7(tthick,180); pos8(tthick,180);
filldraw stroke z1e---z2e;
filldraw stroke z3e---z4e...{up}z5e...{left}z6e...{down}z7e---z8e;
penlabels(1,2,4,5,6,7,8);
elseif callchar="T":
charspec("7",1.75x_height#,x_height#,0);
lft x1l=lft x2l=x3=u; x4=w-u;
y1=h; y2=bot y3l=bot y4l=0;
pos1(tthick,0); pos2(tthick,0);
pos3(tthin,90); pos4(tthin,90);
filldraw stroke z1e---z2e;
filldraw stroke z3e---z4e;
penlabels(1,2,4);
elseif callchar="L":
charspec("9",1.75x_height#,x_height#,0);
x81=x1=u; x6=x7=x8=x9=.55w; x11=x12=.8w; x10=w-u;
x3=x5=.5[x1,x6]; x2=x4=.5[x1,x3];
bot y4r=y6=y7=y11=0; top y5r=y8=top y9r=top y10r=y12=h;
y1=y81=y3=.5y2; y2=.6h;
pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0);
pos4(tthin,-90); pos81(tthinner,-180); pos5(tthick,-270);
pos6(tthin,-360); pos7(tthin,0); pos8(tthin,0);
pos9(tthin,90); pos10(tthin,90); pos11(tthick,0); pos12(tthick,0);
if dodraw:
filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e...{down}z6e;
filldraw stroke z7e---z8e; filldraw stroke z9e---z10e;
filldraw stroke z11e---z12e;
fi
penlabels(1,2,3,4,5,6,8,10,11,12);
elseif callchar="N":
charspec("N",2x_height#,x_height#,0);
x81=u; x1=.05[x81,x6]; x6=.6w; x8=.6[x81,x6]; x7=.5[x8,x6];
x5=.5[x81,x6]; x3=.5[x1,x8]; x4=x2=.5[x1,x3];
x13=rt x6r; x14=w-u; x15=x16=.5[x13,x14];
top y5r=top y13r=y16=top y14r=h;
bot y4r=bot y7r=y15=0;
y8=y6=.5h; y2=bar_height; y81=y2;
y1=y3=.5y2;
pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0); pos4(tthin,-90);
pos81(tthinner,-180); pos5(tmed,-270); pos6(tthicker,-360);
pos7(tmed,-450); pos8(tthin,-540);
pos13(tthin,-630);
pos14(tthin,-630); pos15(tthicker,0); pos16(tthicker,0);
if dodraw:
filldraw stroke z4e...{up}z1e...{right}z2e...{down}z3e...{left}z4e...{up}z81e...{right}z5e
...{down}z6e...{left}z7e...{up}z8e...{right}z13e; %---z14e;
%filldraw stroke z15e---z16e;
fi
penlabels(1,2,3,4,5,6,7,8,13,14,15,16);
elseif callchar="R":
charspec("R",1.3x_height#,x_height#,desc_depth#);
x1=x11=u; x7=w-u; x3=x5=.4[x1,x7]; x2=.5[x1,x3]; x6=.5[x4,x7]; x8=.9[x1,x7];
rt x12r=.5u; x9=x10=.05[x1,x7]; x4r=x3l;
top y2l=top y6l=h; y8=y1=y5=.05h; y9=-.4d; y10=-.8d; y12=-.6d;
y11=y3=y4=.7h; y7=.4h;
pos1(tthin,0); pos11(tthin,0); pos2(tmed,-90); pos3(tthick,-180);
pos4(tthinnest,0); pos5(tthick,-180); pos6(tthin,-90); pos7(tthick,-180);
pos8(tthin,-245); pos9(tthin,-245); pos12(tthin,-180); pos10(tthin,-135);
filldraw stroke z1e--z11e{up}...{right}z2e...{down}z3e--z5e;
%filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
penlabels(1,2,3,5,6,7,8,9,10,11,12);
elseif callchar="g":
charspec("2",1.5x_height#,x_height#,0);
lft x1l=lft x2l=x3=u; x11=x12=x13=w-u;
x8=.7[x1,x12]; x5=x6=x7=x10=.4[x1,x8]; x9=.5[x1,x12]; % x7=x6r; will line up
x4=.8[x1,x13]; x77=.6[x7,x8];
y1=bot y10l=y9=bot y11l=y12=0;
y2=top y3r=top y4r=y5=y13=h;
y6=.35h; y8=.4h; y77=.65h;
pos1(tthinnest,0); pos2(tthinnest,0);
pos3(tthin,90); pos4(tthin,90);
pos5(tthick,0);
% pos6(tthick,45);
x6l+.5tthick=x6=x6r-.5tthick; y6l+.5tthick=y6=y6r-.5tthick;
y7l=y6r;
pos77(tthin,90);
pos7(tthinner,90); pos8(tthicker,45); pos9(tthick,0);
pos10(tthin,90); pos11(tthin,90);
pos12(tthick,0); pos13(tthick,0);
filldraw stroke z1e---z2e;
filldraw stroke z3e---z4e;
filldraw stroke z5e---z6e;
filldraw stroke z7e..z77e{right}...z8e{down}...z9e;
filldraw stroke z10e---z11e;
filldraw stroke z12e---z13e;
penlabels(1,2,4,5,6,8,9,10,11,13);
elseif callchar = "e":
charspec(6,1.6x_height#,x_height#,0);
y6=y7=y8=h; y9=bot y4r=0; y2=.6h; y1=.3h; y3=.3h; y5=y2; %y5=.85h;
x5=u; x7=w-u; x8=x9=x7-2u; x6=x3=x1+3u; x1=x5+hair; x2=x4=x1+1.5u;
z20=z1;
pos1(tthinnest,180); pos2(tmed,90); pos3(tthick,0); pos4(tmed,-90); pos20(tthin,-160);
pos5(tthinner,-180); pos6(tthin,-270); pos7(tthin,-270);
pos8(tthick,0); pos9(tthick,0);
filldraw stroke z1e..z2e..z3e..z4e..z20e...{right}z6e---z7e;
filldraw stroke z8e---z9e;
penlabels(1,2,3,4,5,6,7,8,9);
elseif callchar = "u":
charspec(4,2x_height#,x_height#,0);
x6=.55w; x4=x9=.1w; x1=x8=x10=.15w; x3=.2w; x2=.3w; x5=x7=.4w; x11=.9w;
y10=y11=0; y5=h; y1=.85h; y2=y4=y6=.65h; y3=.45h;
y7=y8=.25h; y9=.125h;
z20=z1;
pos1(tmed,45); pos2(tmed,0); pos3(tthinner,-90); pos4(tthinnest,-180);
pos20(tthinnest,-225); pos5(tthinner,-270); pos6(tthick,-360); pos7(tmed,-430);
pos8(tthin,-450); pos9(tthinnest,-360); pos10(tthin,-290);
pos11(tthin,-290);
filldraw stroke z1e..z2e..z3e..z4e..z20e...{right}z5e;
filldraw stroke z5e{right}...{down}z6e...{left}z7e;
filldraw stroke z7e{left}...{left}z8e...{down}z9e;
filldraw stroke z9e{down}...{right}z10e---z11e;
penlabels(1,2,3,4,5,6,7,8,9,10,11);
elseif callchar = "S":
charspec("S",2.2x_height#,asc_height#,desc_depth#);
x1=x81=u; x6=.45[x1,x9]; x8=x9=x10=w-u; x7=.4[x5,x6];
x5=.5[x1,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
y2=.5x_height; y1=y3=y81=.5y2; bot y4r=bot y7r=bot y8r=0;
top y5r=y10=x_height; y9=0; y6=y2;
pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tmed,-450);
pos8(tthick,-450); pos9(tthick,0); pos10(tthick,0);
filldraw stroke z1e..z2e..z3e..z4e..z81e..z5e...{down}z6e...{left}z7e;
x40=w-3.5u; y40=y7; pos40(tmed,-450); y41=.5bar_height; x41=w-u;
pos41(tthick,-360); x43=.5[x7,x40]; y43=h-y41; z42=.5[z41,z43];
pos42(.5(tthick+tthin),-315); pos43(tthin,-360);
x44=.5[x43,x45]; top y44l=h; pos44(tmed,-450); x45=x43+4u; y45=y43;
pos45(tthin,-540); x46=.5[x7,x43]; bot y46l=-d; pos46(tthinner,-585);
filldraw stroke z7e--z40e{right}...{up}z41e...{z43-z41}z42e...{up}z43e
...{right}z44e...z45e--z46e;
penlabels(1,2,3,4,5,6,7,40,41,42,43,45,46);
elseif callchar = "s":
charspec("s",2.4x_height#,x_height#,0);
x6=u; y6=.5h; x8=x9=.43w; x12=x13=.7w; x15=w-u;
x7=x3=x1=.5[x6,x9]; x2=x1-1.5u; x4=x1+1.5u; y2=y4=.5[y1,y3];
top y3l=bar_height; bot y1l=0; z5=z1; top y7l=top y11l=top y16r=h;
y8=.65h; y9=0; bot y14r=0; x11=.5[x9,x14]; x14=.4[x13,x15]; x16=.65[x13,x15];
y15=y6; y12=y8; y13=1.5u; z10=z8;
pos1(tthin,90); pos2(tthin,0); pos3(tthin,-90); pos4(tmed,-180);
pos5(tthin,-270); pos6(tthin,-360); pos7(1.2tthin,-450); pos8(tmed,-540);
pos9(tmed,-540); pos10(tthin,0); pos11(tthin,-90); pos12(tmed,-180);
pos13(tmed,-180); pos14(.8tmed,-90); pos15(tthin,0); pos16(tthinner,45);
filldraw stroke z1e...{up}z2e...{right}z3e...{down}z4e...{left}z5e
...{up}z6e...{right}z7e...{down}z8e--z9e;
filldraw stroke z10e{up}...{right}z11e...{down}z12e--z13e...{right}z14e
...{up}z15e...{left}z16e;
penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
elseif callchar = "j":
%cmchar "grantha j";
charspec("j",1.75x_height#,x_height#,.8x_height#);
top y7r=y10l=h; y4=y8=y9=.2h; bot y15r=bot y19l=-d; y12=.9bar_height;
y21=.25h; y13=-.2d; y14=-.6d; y16=-.8d; y17=y18=-.3d; y20=-.2d;
y1=y3=.4h; y2=.7h; y11=.75h; y85=0;
x14r=x1r=u; x11=x12l=w-u; x8=x9=x17=x18=.55[x1,x11]; x85=x8;
x7=.6[x1,x8]; x10=.5[x9,x11]; x3=.6[x1,x8]; x2=x4=.5[x1,x3];
x13=x2; x15=x7-.7u; x16=x17; x19=.5[x18,x11]; x20=.95x11; x21=.9x11;
x77=x8; y77=.6h; z99=z77;
pos77(tthick,-360); pos99(tthick,0);
pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0); pos4(tthin,-90);
z55=z1; pos55(tthinner,-180);
pos7(tthick,-270); pos8(tmed,-405);
pos9(tmed,-45); pos10(tthin,-90); pos11(tthick,-180); pos12(tthick,-200);
pos21(tthin,-240); pos13(tthinner,-240); pos14(tthin,-180);
pos15(tthick,-90); pos16(tthick,-45); pos17(tthick,-45);
pos18(tthick,-45); pos19(tthin,-270); pos20(tmed,225);
pos85(tthin,-270);
x65=x19; y65=y17; pos65(tthin,-90); x66=x12; y66=.5[y65,y19]; pos66(tmed,-180);
z67=.5[z15,z65]; pos67(tthin,-315);
filldraw stroke z1e..z2e{right}..z3e{down}..z4e{left}..z55e...{right}z7e...{down}z77e---z8e;
filldraw stroke z9e---z99e{up}...z10e{right}...{down}z12e...{left}z85e{left}..z14e{down}...z15e{right}
...{right}z65e...{down}z66e...{left}z19e...z67e;
penlabels(1,2,3,4,55,7,8,9,10,11,12,21,13,14,15,65,66,19,67);
elseif callchar="h":
charspec("h",3x_height#,x_height#,desc_depth#);
x1=x81=u; x6=.6[x1,x8]; x8=1.5x_height-u; x7=.4[x5,x6];
x5=.5[x1,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
y2=.5h; y1=y3=y81=.5y2; bot y4r=bot y7r=bot y8r=0;
top y5r=h; y6=.5h;
pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tthick,-450);
pos8(tthick,-450);
filldraw stroke z1e..z2e..z3e..z4e..z81e..z5e...{down}z6e...{left}z7e;
filldraw stroke z7e--z8e;
x101=x111=x8; x107=w-2u; x103=x105=.4[x101,x107]; x102=.5[x101,x103];
x106=.5[x104,x107]; x108=.9[x101,x107];
rt x112r=u; x109=x110=x112+.75u; x104r=x103l;
top y102l=top y106l=h; y108=y101=y105=0; y109=-.4d; y110=-.8d; y112=-.6d;
y111=y103=y104=.7h; y107=.4h; y131=y109+.2u; x131=.3[x108,x109]; pos131(tthinner,-270);
pos101(tthin,0); pos111(tthin,0); pos102(tmed,-90); pos103(tthick,-180);
pos104(tthinnest,0); pos105(tthick,-180); pos106(tthin,-90); pos107(tthick,-180);
pos108(tthin,-245); pos109(tthin,-245); pos112(tthin,-180); pos110(tthin,-135);
filldraw stroke z101e--z111e{up}...{right}z102e...{down}z103e--z105e;
filldraw stroke z104e{up}...{right}z106e...{down}z107e..z108e...{left}z131e...z109e...{down}z112e..z110e;
penlabels(101,102,103,104,105,106,107,108,109,110);
fi
enddef;
def aipoints =
x209=x204=-x_height+u; x201=x203=x205=x204+1.5u; x202=x201+1.5u; x207=0;
y209=.9bar_height; y207=asc_height-y209;
y208=.5[y209,y207]; x206=x208=x210=-.5x_height+.5u;
y201=y205=y206-.5u; y204=y202=y201-1.5u; y203=y202-1.5u;
if goleft:
top y206l=asc_height; bot y210r=0;
pos201(tthin,-90); pos202(tmed,-180); pos203(tthin,-270);
pos204(tthin,-360); pos205(tthin,-450); pos206(tthin,-450);
pos207(tthick,-540); pos208(tthin,-585); pos209(tthin,-540);
pos210(tthin,-450);
else:
top y206r=asc_height; bot y210l=0;
pos201(tthin,90); pos202(tmed,0); pos203(tthin,-90);
pos204(tthin,-180); pos205(tthin,-270); pos206(tthin,-270);
pos207(tthick,-360); pos208(tthin,-405); pos209(tthin,-360);
pos210(tthin,-270);
fi
enddef;